package schema

import (
	"time"

	"entgo.io/ent"
	"entgo.io/ent/schema/edge"
	"entgo.io/ent/schema/field"
)

// User schema.
type User struct {
	ent.Schema
}

// Fields of the user.
func (User) Fields() []ent.Field {
	return []ent.Field{
		field.String("username").Unique(),          // 用户的用户名，必须唯一
		field.String("email").Unique(),             // 用户的邮箱，必须唯一
		field.String("password").Sensitive(),       // 用户的密码，标记为敏感信息
		field.Time("created_at").Default(time.Now), // 用户创建的时间，默认为当前时间
	}
}

// Edges of the user.
func (User) Edges() []ent.Edge {
	return []ent.Edge{
		edge.To("pets", Pet.Type), // 定义反向关系，指向 Pet 表

		edge.From("groups", Group.Type).
			Ref("users"),
	}
}
